package com.base.cn.platform.os.service.qa.qaadd;

import com.base.cn.platform.os.common.mybatis.BaseBiz;
import com.base.cn.platform.os.common.utils.DataUtil;
import com.base.cn.platform.os.common.utils.ObjectUtils;
import com.base.cn.platform.os.common.utils.StringUtils;
import com.base.cn.platform.os.dao.qa.qaadd.QaAddDao;
import com.base.cn.platform.os.entity.qa.qaadd.QaAdd;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;

/**
 * 追问Biz
 * @author LIZHIPENG
 * @since 2018/4/26
 */
@Service
public class QaAddBiz extends BaseBiz<QaAdd, QaAddDao> {

    /**
     * 根据条件查询追问的数量
     * @param qaAdd 查询条件
     * @return BigDecimal 追问数量
     */
    public BigDecimal getCount(QaAdd qaAdd){
        String whereSql = getWhereSql(qaAdd);
        return this.count(whereSql);
    }

    /**
     * 保存问题的追问，并返回追问条数
     * @param qaAdd 追问数据信息
     * @return int 追问条数
     */
    public void saveOrUpdateQuestionAdd(QaAdd qaAdd){
        if(DataUtil.idIsNotNull(qaAdd.getId())){
            this.updateById(qaAdd, null);
        }else {
            this.save(qaAdd);
        }
    }

    /**
     * 查询追问列表
     * @param qaAdd 条件
     * @return
     */
    public List<QaAdd> findQaAddList(QaAdd qaAdd){
        String whereSql = getWhereSql(qaAdd);
        List<QaAdd> qaAddList = this.find(whereSql, null, null);
        return qaAddList;
    }


    /**
     * 拼接sql语句
     * @param qaAdd 条件
     * @return
     */
    private String getWhereSql(QaAdd qaAdd){
        String whereSql = "1=1";
        if(ObjectUtils.isNotEmpty(qaAdd)){
            if(ObjectUtils.isNotEmpty(qaAdd.getId())){
                whereSql += " and id=" + qaAdd.getId();
            }
            if(ObjectUtils.isNotEmpty(qaAdd.getQuestionId())){
                whereSql += " and questionId=" + qaAdd.getQuestionId();
            }
            if(StringUtils.isNotEmpty(qaAdd.getQuestionIds())){
                whereSql += " and questionId in("+ qaAdd.getQuestionIds() +")";
            }
        }
        return whereSql;
    }
}
